'''
    这是一个功能模块，所有功能性的函数都定义在这个模块里面
'''

import sys
import time

from . import tools_func
from . import sql_func
from .input_func import *

@tools_func.main_func('连接已有服务器')
def conn_server():
    # 检查目前是否有服务器记录
    res = sql_func.get_all_conn_data()
    if res[0] == 0:
        input(' > 暂无任何ssh连接记录\n > 请按任意键以继续 . . ')
        return
    # 让用户选择连接的服务器
    for i in res[1]:
        print(i)

@tools_func.main_func('新建连接')
def new_conn_server():
    # 让用户输入ip地址或者域名（此时应该提醒用户：仅支持ipv4地址）
    ip = input_ip('请输入ipv4地址: ')
    # 让用户输入端口
    port = input_port('请输入端口: ')
    # 让用户输入用户名（获取输入之后清除前后空格）
    user = input('请输入登录名: ').strip()
    # 让用户输入密码
    pswd = input('请输入密码: ')
    # 询问是否要为该连接命名
    rename_flag = inputYN('默认连接名为ip地址, 是否要重命名该连接? (y/N) ')
    if rename_flag:
        conn_name = input('请输入连接名: ').strip()
    else:
        conn_name = ip
    # 将连接保存到数据库中
    conn = {"ip": ip, "user": user, "password": pswd, "conn_name": conn_name, 'port': port}
    print(sql_func.add_one_conn(conn))
    # 询问是否要立刻连接
    flag = inputYN('是否要立刻连接? (y/N) ')
    if flag:
        link(conn)
    else:
        ...

@tools_func.main_func('删除连接')
def del_server():
    # 列出所有已保存的服务器
    # 让用户选择删除哪个服务器
    # 确认删除操作十分重要
    ...

@tools_func.main_func('退出程序')
def quit_procedure():
    print('程序正在安全退出。。。')
    time.sleep(1)
    sys.exit(0)


def link(conn):
    '''
        ssh连接函数
        作用: 建立 ssh 连接
    '''
    print('尝试连接', conn)
